Protocol conformance testing for network communication devices is relevant in a number of different environments. Manufactures must implement rigorous device verification before release for beta-testing and then finally before shipments for revenue. Moreover, especially in mission-critical applications, the end-user will typically implement its own protocol testing to ensure that the communications device is operating according to specifications and is compatible with the other network communication devices in existing networks.
The spectrum of network communication devices to which protocol testing is applied is similarly varied, extending from devices which have relatively simple behavior such as asynchronous transfer mode (ATM) switches to switches/bridges, with or without learning capabilities, and cable modems. It is most critical, however, for devices with the most complex behavior such as routers, multiprotocol routers, and tag-switching routers.
Within these network communication devices, the protocols to be tested are extensive. Hand-shaking to establish a level of service across a link between two devices represents some of the more complex types of protocols, due to the state-driven nature. For example, communicating tag-switching-enabled routers establish level of support using a tag distribution protocol. Whereas, lower-level protocols, operating nearer to the physical layer, must also be verified to determine, for example, whether the frame checksums/cyclical redundancy check (CRC) fields are properly set and whether other fields are within ranges dictated by the relevant protocol.
In the past, protocol testing systems have been designed to test individual protocols in the context of specific platforms, specific topologies, and specific states. Commonly, a workstation would be connected to the network in which the unit under test (UUT) is deployed. At the workstation, a test engineer typically hard-codes a test script that generates communications on the network to essentially interrogate the UUT""s regarding their behavior under the protocol of interest.
The problem with this hard-coding technique for generating the scripts used to test network communications device protocol conformance surrounds the fact that the test engineer must typically write a separate script for each device, each implementation of that device, each protocol that must be tested, and each topology on which the device operates. In the context of the situation where many network communications devices must be tested over periods of time, commonality exists between protocols executed by the devices, network topologies, and the numerous test scripts that are developed, but due to the situation-specific nature of the scripts and limitations on the documentation of these scripts, there is little opportunity to reuse the core intelligence from one device-test to another.
The present invention is directed to a modular data network protocol conformance test system. The modularity at the software module, procedure, and/or object level is designed to make distinct the key functionality that is required in protocol conformance testing such that the system can be reused across different platform testing, protocol testing, and network topologies. As a result, in the current design, it can be used to test devices as distinct as cable modems, multiprotocol routers, and tag-switching routers.
In general, according to one aspect, the invention concerns a data network protocol conformance testing system. It comprises a packet generation module that generates send packets for transmission to the UUT (unit under test) and that analyzes the receive packets from the UUT. A separate network handling module transfers the send packets to and acquires the receive packets from the UUT.
The system can be deployed in a number of implementations. The modules can run on a workstation computer that directly interfaces with a network on which the UUT operates. Alternatively, interface can be achieved between the workstation executing the modules and the UUT via a packet generating router. The advantage of this latter system is that the intelligence required to transfer the packet or frame, for example, onto the network can essentially be out-sourced to this separate network communications device, i.e., router.
In a preferred embodiment, an input definition file is used to hold a testing value section that contains fields of the send packets. This input definition file preferably also has protocol header information that determines the encapsulation for the send packets. Further, the testing value section can comprise minimum and maximum values to be used in specified fields of the send packets in addition to incrementing values used so that the value of the field is changed, incrementally, in successive packet transmissions.
In order to test more complex protocol operation, the input definition file also preferably has state definition information. The packet generation module extracts state packets for transmission to the UUT so that protocol conformance in a specific state, or proper state-transition behavior of the UUT can be tested.
Also according to the preferred embodiment, an output-definition file is further included containing expected values in the receive packets. The packet generation module accesses this output definition to analyze the receive packets from the UUT for protocol conformance.
In general, according to another aspect, the invention also features a data network protocol conformance test method. This method comprises forming the send packets for transmission to a UUT and then transferring the send packets to a network handling module, which transfers the send packets onto the network. Receive packets are then acquired and transferred to the packet generation module where they are again analyzed for protocol conformance.
Finally, the invention also concerns an article of manufacturer comprising a machine readable medium holding a computer program. This computer program comprises the packet generation module which enables a computer workstation to generate send packets for transmission to the UUT and that then analyzes the receive packets from that unit. The program further comprises a network handling module that enables the workstation to transfer and receive the send and receive packets to and from the UUT.
The above and other features of the invention including various novel details of construction and combinations of parts, and other advantages, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular method and device embodying the invention are shown by way of illustration and not as a limitation of the invention. The principles and features of this invention may be employed in various and numerous embodiments without departing from the scope of the invention.